package ifpb.monteiro.p2.banco;

import ifpb.monteiro.p2.banco.exceptions.ContaNaoExisteException;

import java.util.Date;

public interface OperacoesBancoFacadeIF {

	BancoIF criaBanco(String nome);
	AgenciaIF criaAgencia(String nome, BancoIF banco);
	ContaIF criaConta(ClienteIF cliente, AgenciaIF agencia);
	FuncionarioIF criaFuncionario(int cpf, String nome, CargoFuncionario cargo);
	TransferenciaIF criarTransferencia(double valor, ContaIF fonte, ContaIF destino);
	void agendarTransferencia(TransferenciaIF transferencia, Date data);
	void realizarTransferencia(TransferenciaIF transferencia) throws SaldoInsuficienteException;
	ContaIF recuperarConta(BancoIF banco, int agencia, int conta) throws ContaNaoExisteException;
}
